<< QuantLib`

plotopts = 
      Sequence[TextStyle -> {FontFamily -> "Helvetica"}]

?SVJDModel

SV-model sigmav 0.3

instr[K_] := EuropeanOption[K, 0.5, CallOption]

svjdmodel[S_] := 
      SVJDModel[S, 0, 0, 0.1, 0.3, 0.1, 2, 0, 0, 0, 0]

filenameprefix = "kurt";

JD-model jump-mean 0.1

instr[K_] := EuropeanOption[K, 0.5, CallOption]

svjdmodel[S_] := 
      SVJDModel[S, 0, 0, 0.1, 0.0001, 0, 2, 0, 0.5, 0.1, 0.1]

filenameprefix = "skew";

Grafer

bsmodel[S_] := BlackScholesModel[instr[100], svjdmodel[S]]

svjdpdf[ST_] := PDF[instr[100], svjdmodel[100], Log[ST/100]]

bspdf[ST_] := PDF[instr[100], bsmodel[100], Log[ST/100]]

sshgr = 
      Plot[{bspdf[ST], svjdpdf[ST]}, {ST, 70, 130}, 
        PlotRange -> {{70, 130}, All}, 
        PlotStyle -> {GrayLevel[0.6], GrayLevel[0]}, 
        Evaluate[plotopts]]

Export[filenameprefix  <> "ssh.eps", sshgr]

Export[filenameprefix  <> "ssh.wmf", sshgr]

bsp[S_, K_] := 
        Value[instr[K], bsmodel[S]];
svjdp[S_, K_] := 
        Value[instr[K], svjdmodel[S]];
payoff[S_, K_] := Max[S - K, 0];

svjdpdif[S_, K_] := 
        10*svjdp[S, K] - (10 - 1)*bsp[S, K] ;

prisgr = 
      Plot[{bsp[S, 100], svjdpdif[S, 100]}, {S, 70, 130}, 
        PlotRange -> All, 
        PlotStyle -> {GrayLevel[0.6], GrayLevel[0]}, 
        Evaluate[plotopts]]

Export[filenameprefix  <> "pris.eps", prisgr]

Export[filenameprefix  <> "pris.wmf", prisgr]

difgr = 
      Plot[svjdp[S, 100] - bsp[S, 100], {S, 70, 130}, 
        Evaluate[plotopts]]

Export[filenameprefix  <> "dif.eps", difgr]

Export[filenameprefix  <> "dif.wmf", difgr]

Smile[S_, 
        K_] := (val = svjdp[S, K]; 
ImpliedVolatility[
          val, instr[K], bsmodel[S]])

smilgr = 
      Plot[Smile[100, K], {K, 78, 130}, PlotRange -> {{70, 130}, All}, 
        AxesOrigin -> {70, bsmodel[100][[4]]}, 
        PlotStyle -> {GrayLevel[0.6], GrayLevel[0]}, 
        Evaluate[plotopts]]

Export[filenameprefix  <> "smil.eps", smilgr]

Export[filenameprefix  <> "smil.wmf", smilgr]